package com.intelligent.system.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.intelligent.system.auth.dto.UserDTO;
import com.intelligent.system.auth.entity.User;
import com.intelligent.system.common.response.ResultDO;
import com.intelligent.system.auth.dto.StaffInfoDTO;
import org.springframework.security.core.Authentication;
import com.intelligent.system.auth.dto.UserQueryDTO;

import java.util.List;

public interface IUserService extends IService<User> {

    ResultDO<UserDTO> getUserById(Long id);
    ResultDO<?> getUserList(UserQueryDTO param);
    ResultDO<?> addUser(UserDTO param);
    ResultDO<?> updateUser(UserDTO param);
    ResultDO<?> updateUserStatus(Long userId, Byte status);
    ResultDO<?> deleteUserById(Long userId);
    ResultDO<?> assignRole(Long userId, List<Long> roleIds);

    ResultDO<?> register(Authentication authentication);
    UserDTO createOrUpdateUser(StaffInfoDTO staffInfoDTO);
}
